#ifndef GAMEENGINE_GRAPHICS_LIGHTING_SCENE_LIGHT_H
#define GAMEENGINE_GRAPHICS_LIGHTING_SCENE_LIGHT_H

#include <GameEngine/Graphics/graphics_settings.h>

#include <GameEngine/Graphics/Lighting/light.h>
#include <GameEngine/Graphics/Scene/scene_element.h>

#ifdef GAMEENGINE_NAMESPACES
namespace GameEngine {
#endif

//! Implements a light that can be drawn in a scene
/*!
 *  This class supplements that Light class so that the light can be drawn in a
 *  scene. This class reimplements the draw() function, so that it applies the
 *  light parameters.
 */
class _Graphics_decl SceneLight : public Light, public SceneElement {

public:
	SceneLight();
	SceneLight(const SceneLight& rhs);
	virtual ~SceneLight();
	SceneLight& operator=(const SceneLight& rhs);

	virtual bool draw(const Line3d<float>& ray);

	int light_index() const;
	int& light_index();

protected:
	//! The index of the light to be drawn
	int light_index_;
};


//========================================================


#ifdef GAMEENGINE_NAMESPACES
} // namespace GameEngine
#endif

#endif
